/**
 * Copyright 2010 Terrestrial Ecosystem Research Network, licensed under the Apache
 * License, Version 2.0 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or
 * agreed to in writing, software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and
 * limitations under the License.
 */

package au.org.tern.ecoinformatics.oai.provider.sample.model;

import java.util.Date;
import java.util.List;

/**
 * Basic dataset model, of a sample dataset that has details that map nicely to an EML Dataset.
 * 
 * Intended as an example for developers building custom models of real data/metadata.
 * 
 * @author Vaughan Hobbs
 * 
 */
public class SampleDataset {

	// Title, description, etc
	private Long id;
	private String title;
	private String abstrakt;
	private String description;
	private String purpose;

	// Creation and modification times
	private Date creationDate;
	private Date modificationDate;

	// Geographical bounding box of data collection
	private Double northernExtent;
	private Double southernExtent;
	private Double easternExtent;
	private Double westernExtent;

	// Temporal coverage of data collection
	private Date startDate;
	private Date endDate;

	// Species covered by data collection
	private List<SampleSpecies> speciesList;

	// Publisher details
	private String publisherName;
	private String publisherEmail;

	// Creator details
	private String creatorName;
	private String creatorEmail;

	
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getAbstrakt() {
		return abstrakt;
	}

	public void setAbstrakt(String abstrakt) {
		this.abstrakt = abstrakt;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public String getPurpose() {
		return purpose;
	}

	public void setPurpose(String purpose) {
		this.purpose = purpose;
	}

	public Date getCreationDate() {
		return creationDate;
	}

	public void setCreationDate(Date creationDate) {
		this.creationDate = creationDate;
	}

	public Date getModificationDate() {
		return modificationDate;
	}

	public void setModificationDate(Date modificationDate) {
		this.modificationDate = modificationDate;
	}

	public Double getNorthernExtent() {
		return northernExtent;
	}

	public void setNorthernExtent(Double northernExtent) {
		this.northernExtent = northernExtent;
	}

	public Double getSouthernExtent() {
		return southernExtent;
	}

	public void setSouthernExtent(Double southernExtent) {
		this.southernExtent = southernExtent;
	}

	public Double getEasternExtent() {
		return easternExtent;
	}

	public void setEasternExtent(Double easternExtent) {
		this.easternExtent = easternExtent;
	}

	public Double getWesternExtent() {
		return westernExtent;
	}

	public void setWesternExtent(Double westernExtent) {
		this.westernExtent = westernExtent;
	}

	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public Date getEndDate() {
		return endDate;
	}

	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	public List<SampleSpecies> getSpeciesList() {
		return speciesList;
	}

	public void setSpeciesList(List<SampleSpecies> speciesList) {
		this.speciesList = speciesList;
	}

	public String getPublisherName() {
		return publisherName;
	}

	public void setPublisherName(String publisherName) {
		this.publisherName = publisherName;
	}

	public String getPublisherEmail() {
		return publisherEmail;
	}

	public void setPublisherEmail(String publisherEmail) {
		this.publisherEmail = publisherEmail;
	}

	public String getCreatorName() {
		return creatorName;
	}

	public void setCreatorName(String creatorName) {
		this.creatorName = creatorName;
	}

	public String getCreatorEmail() {
		return creatorEmail;
	}

	public void setCreatorEmail(String creatorEmail) {
		this.creatorEmail = creatorEmail;
	}

}
